package com.candy.control;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;

//简单配置，等价于在xml中配置的映射的部分
//@WebServlet("/loginServlet")
//完整配置
@WebServlet(name = "LoginServlet2",urlPatterns = "/loginServlet",
        initParams = { @WebInitParam(name = "username", value = "qst") },
        asyncSupported = true,description = "Servlet的注解配置",displayName = "LoginServlet2"
)
public class LoginServlet2 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
////////////////////////// 获取请求信息///////////////////////////////////////
// 获取请求方式
        System.out.println("请求方式："+req.getMethod());
//        请求资源名字（映射路径）
        System.out.println("请求资源："+req.getRequestURI());
//        获取请求协议及版本
        System.out.println("请求协议及版本："+req.getProtocol());
//        获取请求的查询字符串,只对get请求生效
        System.out.println("请求中的查询字符串："+req.getQueryString());
//        获取Servlet的映射路径
        System.out.println("Servlet的映射路径："+req.getServletPath());
//        获取请求资源的路径
        System.out.println("请求资源的路径："+req.getContextPath());
//        获取请求头名称
        Enumeration em= req.getHeaderNames();
        while(em.hasMoreElements()){
            System.out.print("请求头有："+em.nextElement()+"\t");
        }
        System.out.println();
//        获取具体的请求头域对应的值
        System.out.println("user-agent对应的值："+req.getHeader("User-Agent"));
//        获取浏览器的本地信息
        System.out.println("浏览器的Locale："+req.getLocale());
//        设置字符集，解决中文乱码问题
        req.setCharacterEncoding("UTF-8");
/////////////////////////////////////获取网络连接的方法////////////////////////////////////////////////
//getRemoteAddr()	获取请求用户的IP地址
        System.out.println("获取请求用户的IP地址"+req.getRemoteAddr());
//getRemoteHost()	获取请求用户的主机名称
        System.out.println("获取请求用户的主机名称"+req.getRemoteHost());
//getRemotePort()	获取请求用户的主机所使用的网络端口号
        System.out.println("获取请求用户的主机所使用的网络端口号"+req.getRemotePort());
//getLocalAddr()	获取Web服务器的IP地址
        System.out.println("获取Web服务器的IP地址"+req.getLocalAddr());
//getLocalName()	获取Web服务器的主机名
        System.out.println("获取Web服务器的主机名"+req.getLocalName());
//getLocalPort()	获取Web服务器所使用的网络端口号
        System.out.println("获取Web服务器所使用的网络端口号"+req.getLocalPort());
//getServerName()	获取网站的域名
        System.out.println("获取网站的域名"+req.getServerName());
//getServerPort()	获取URL请求的端口号
        System.out.println("获取URL请求的端口号"+req.getServerPort());
//getScheme()	获取请求使用的协议，例如，http或是https
        System.out.println("获取请求使用的协议"+req.getScheme());
//getRequestURL()	获取请求的URL地址
        System.out.println("获取请求的URL地址"+req.getRequestURL());
        ////////////////////////// 对于请求信息的处理///////////////////////////////////////
        System.out.println("这里是servlet2，已接收用户端的get请求");
        String username=req.getParameter("username");
        String userpwd=req.getParameter("userpwd");
        System.out.println("username:"+username);
        System.out.println("userpwd:"+userpwd);
//        对客户端传递进来的参数进行比对
        if(username.equals("tom")&&userpwd.equals("123456")){
//            如果用户名密码匹配
//            转发
            req.getRequestDispatcher("welcome.jsp").forward(req, resp);
        }else {
//            如果用户名密码不匹配，
//            重定向到登录页面
            resp.sendRedirect("index.jsp");
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这里是servlet2，已接收用户端的post请求");
    }
}
